<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>1_Number</title>
</head>

<body>
  <script>
    // 声明变量只有第一次需要写var/let，后面可以省略，一个变量只需要声明一次
    var str = 'hello';
    str = '你好';
    str = 4;
    console.log(str); //4

    /**
     * js所有的数值都是Number类型
     * 
     * 使用一个运算符typeof来检查一个变量的基础类型
     * 语法：typeof 变量
     */
    var a = 123;
    console.log(a); //123
    console.log(typeof a); //number
    var b = '123';
    console.log(b); //123
    console.log(typeof b); //string

    //js表示的数字的最大值：Number.MAX_VALUE
    console.log(Number.MAX_VALUE); //1.7976931348623157e+308
    console.log(Number.MAX_VALUE * Number.MAX_VALUE); //Infinity 正无穷
    console.log(-Number.MAX_VALUE * Number.MAX_VALUE); //-Infinity 负无穷
    console.log(typeof Infinity); //number

    //js表示的数字的最小值：Number.MIN_VALUE
    console.log(Number.MIN_VALUE); //5e-324

    a = 'abc' * 'bcd';
    console.log(a); //NaN not a number 不是一个数字
    console.log(typeof NaN); //number

    // 如果使用js进行浮点数运算，可能得到一个不精确的结果
    // 所以千万不要使用js进行对精确度要求比较高的运算，比如金钱等
    var c = 0.1 + 0.2;
    console.log(c); //0.30000000000000004

  </script>
</body>

</html>